package cn.juque.datapipeline.converter;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.juque.datapipeline.bo.task.FieldAddBO;
import cn.juque.datapipeline.bo.task.FieldUpdateBO;
import cn.juque.datapipeline.bo.task.TaskAddBO;
import cn.juque.datapipeline.bo.task.TaskUpdateBO;
import cn.juque.datapipeline.vo.taskinfo.TaskInfoAddVO;
import cn.juque.datapipeline.vo.taskinfo.TaskInfoUpdateVO;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @author juque
 * @version 1.0.0
 * <ul>
 *     <li>TaskInfoAddConverter</li>
 * </ul>
 * @date 2023-03-31 17:31:57
 **/
@Component("taskInfoAddConverter")
public class TaskInfoAddConverter {

    public TaskAddBO toTaskAddBO(TaskInfoAddVO addVO) {
        TaskAddBO taskAddBO = new TaskAddBO();
        BeanUtil.copyProperties(addVO, taskAddBO);
        if (CollUtil.isNotEmpty(addVO.getFieldList())) {
            List<FieldAddBO> boList = BeanUtil.copyToList(addVO.getFieldList(), FieldAddBO.class);
            taskAddBO.setFieldList(boList);
        }
        return taskAddBO;
    }

    public TaskUpdateBO toTaskUpdateBO(TaskInfoUpdateVO updateVO) {
        TaskUpdateBO taskAddBO = new TaskUpdateBO();
        BeanUtil.copyProperties(updateVO, taskAddBO);
        if (CollUtil.isNotEmpty(updateVO.getFieldList())) {
            List<FieldUpdateBO> boList = BeanUtil.copyToList(updateVO.getFieldList(), FieldUpdateBO.class);
            taskAddBO.setFieldList(boList);
        }
        return taskAddBO;
    }
}
